package 暑假实习面试.腾讯面试题;

import 我的JDK基础数据结构.HashMap.HashMap;
import 链表.ListNode;

import java.util.Map;

public class No1 {

    public ListNode solve (ListNode S) {

        Map<Integer,ListNode> map=new HashMap<>();
        int minIndex=-1;
        int minNum=Integer.MAX_VALUE;
        ListNode cur=S;
        int index=0;

        while (cur!=null){
            if(cur.val==minNum){
                if(cur.next!=null&&index!=minIndex+1){
                    if(map.get(minIndex+1).val>=cur.next.val){
                        minIndex=index;
                    }
                }
            }
            if(cur.val<minNum){
                minNum=cur.val;
                minIndex=index;
            }
            map.put(index,cur);
            index++;
            cur=cur.next;
        }

        ListNode result=map.get(minIndex);
        if(minIndex==0){
            return result;
        }

        ListNode lastNode = map.get(minIndex - 1);
        lastNode.next=null;
        map.get(map.size()-1).next=map.get(0);

        return result;
    }

    public static void main(String[] args) {
    }

}
